package starkuz.smartpages.model;


import java.util.Collection;
import java.util.Date;
import java.util.TreeSet;

/**
 * Проект
 */
public class Project {

    public Project() {
        pages = new TreeSet<Page>();
        jobs = new TreeSet<Job>();
    }

    //Статусы:
    public final static String STARTING = "starting";
    public final static String INPROGRESS = "inprogress";
    public final static String COMPLETE = "complete";

    //Тип:
    public final static String FOR_ACTION = "for_action";
    public final static String FOR_SALE = "for_sale";

    private Long id;
    private String name;
    private Collection<Job> jobs;
    private Collection<Page> pages;
    private String status;
    private String type;
    private Date startDate;
    private Date endDate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Collection<Job> getJobs() {
        return jobs;
    }

    public void setJobs(Collection<Job> jobs) {
        this.jobs = jobs;
    }

    public Collection<Page> getPages() {
        return pages;
    }

    public void setPages(Collection<Page> pages) {
        this.pages = pages;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    //удаление работы с проекта по ссылке
    public void removeJob(Job job) {
        jobs.remove(job);
    }

    //удаление работы с проекта по ID
    public void removeJob(Long jobId) {
        for (Job job : jobs) {
            if (job.getId().equals(jobId)) {
                jobs.remove(job);
            }
        }
    }

    //добавление работы в проект
    public void addJob(Job job) {
        jobs.add(job);
    }

    //добавление страницы в проект
    public void addPage(Page page) {
        pages.add(page);
    }

    //удаление страницы с проекта по ID
    public void removePage(Long pageId) {
        for (Page page : pages) {
            if (page.getId().equals(pageId)) {
                pages.remove(page);
            }
        }
    }

    public void removePage(Page page) {
        pages.remove(page);
    }

}
